A. Field of the Invention
The present invention relates in general to data storage devices and, more particularly, to an apparatus, method, computer implemented method and computer programmed product for recovering data from a storage media.
B. Background of the Invention
Computers store data in various storage media often referred to as xe2x80x9cmemory.xe2x80x9d Memory may be implemented in, for example, hard disk, floppy disk, compact disk read only memory (CD-ROM), random access memory (RAM), one or more levels of cache devices and other available data storage media. Some storage media is circular or disk shaped. One example of a disk shaped storage media is the floppy disk. Data on a floppy disk is typically stored in circular tracks on the disk surface. Within a track, data is stored in xe2x80x9csectors.xe2x80x9d A sector represents the smallest addressable block of data. The amount of data recorded on a track is typically chosen based on the maximum linear bit density that can be supported by the head and media combination.
Data is read off the disk by a read/write head. The head is positioned at the start of the data sector by a servo positioning system. A typical servo positioning system comprises an actuator, a head, and a control processor. The actuator moves the head radially across the surface of the disk as the disk spins under the head so that the head is placed at the start of the sector where the desired data is located. The control processor handles various control functions including driving the actuator and enabling the head during read and write operations.
To facilitate reading and writing data to the disk, each track, in addition to user data, also contains position information. Position information is provided, in some systems, by xe2x80x9cservo position fieldsxe2x80x9d. Servo position fields provide reference both rotationally and radially for the read/write head relative to the disk surface. Servo position fields are typically placed at regular intervals along each track so that the disk drive""s servo positioning system can make adjustments to the actuator position and spin speed as needed. The interval chosen for placement of the servo position fields on the disk is a function of the required actuator and spin speed stability.
Spin speed stability refers to variation in the spin speed of the disk in operation caused by variations in components and operating conditions. Drive manufacturers design a disk drive to have a maximum spin speed and a minimum spin speed when the drive is operated within specified environmental and operational ranges. Therefore, it is advantageous to use each servo position field""s actual detected location to synchronize the reading and writing of user data to the rotational position of the media. The relationship between the optimum linear bit density and optimum position feedback interval, however, is such that data sectors do not always fit evenly between servo position fields. When this occurs the data sectors are xe2x80x9csplit,xe2x80x9d with one or more portions of the data or xe2x80x9cdata fragmentsxe2x80x9d placed on each side of a servo position field. The data sector may be split anywhere depending on the location of the servo position field.
Disk drive media often contain defective areas. Reading and writing data to a defective area is at best unreliable and often impossible. A given size media defect becomes more apparent and affects more data as data is recorded more densely. To improve data storage on disks that contain defective areas, systems have been created to avoid recording data to defective areas. Moreover, defect management schemes have been an essential facilitating component for the increase in disk drive capacity that has been occurring for many years.
Over the years, the function of avoiding defective areas has migrated from the host computer and operating system to the disk drive itself. Operating systems no longer rely on intimate knowledge of such features as drive geometry, block ordering, skewing, and defect management techniques employed. Removing this knowledge from the operating system allows disk drive vendors to optimize these features for a specific product. These features are now implemented by a combination of firmware and hardware on the disk drive printed circuit board assembly.
Disk drive vendors implement a variety of defect management techniques to avoid using defective areas on a disk. One method involves locating all media defects and creating defect lists that describe the locations. Initially, defect locations are identified during manufacture and defect lists are stored in the drive before the drive is integrated into a computer system. However, many times new defects, often called xe2x80x9clatent defectsxe2x80x9d, become apparent after the disk drive is put to use. Some of the factors that may contribute to latent defects include undesirable head/media contact, an incomplete defect scan during the factory test process, and contamination, the latter being of particular concern on removable media type products such as the floppy disk.
Some disk drives are designed to automatically detect these new defects during user operation and automatically begin avoiding these locations. This feature is referred to as xe2x80x9cautomatic reallocation.xe2x80x9d Automatic reallocation can be performed when defects are detected during either a write operation or a read operation. In either case, reallocation involves halting the data transfer, selecting a new location for the data from a pool of spare locations, creating an association between the defective location and the new location (e.g. in a defect list), and resuming the data transfer. When the defect is discovered on a write operation, the data to be written is already available so the data transfer is resumed by redirecting the write operation to the new location. When the defect is discovered on a read, however, the data must be recovered, if possible, from the defective location and transferred to the new location before data transfer can resume.
When a new defect is discovered on a read operation it is often impossible in current systems to recover the data stored at the defective location. When the data is unrecoverable, disk drive vendors typically choose to not perform the reallocation. Rather, the data transfer is halted and an error is reported to the host computer. Such errors result in catastrophic data loss. If reallocation were to be attempted without recovering the correct data, the reallocated sector does not contain accurate data. Hence, any future read accesses to the defective sector must be flagged so that a data error is reported to the host computer. The data error must be reported until new data is written to the reallocated sector. Anytime data may be incorrect the disk drive must be able to notify the host computer or the bad data will be transferred. This complicates the disk firmware without recovering the data. In addition, future read accesses must not perform subsequent reallocations (until correct data is written) else the spare pool of data sectors may be consumed during repeated attempts by the host computer to read the data. Hence, a need exists for an improved method and mechanism for error recovery and defect management.
Briefly stated, the present invention involves a method, a computer implemented method, a computer program product and an apparatus for recovering data stored on a storage media where the data is stored in data fragments or sectors. Each data fragment is associated with a servo timing mark that may become inoperable. The present invention enables recovery of data stored in data fragments associated with an inoperable servo timing mark.
When an inoperable servo timing mark is detected on a read operation, the present invention transfers from normal read operation to an open loop mode. In the open loop mode the data associated with inoperable servo timing mark is recovered without using the servo timing mark associated with the data. Once the data is recovered it is reallocated to a new location in the storage media.
Open loop operation comprises detecting a time point relative to an operable servo timing mark preceding the inoperable servo timing mark. The relative time point may be any known time point including the end of the preceding data fragment or the preceding operable servo timing mark itself. A xe2x80x9cknownxe2x80x9d time point means a time point that is known relative to an operable servo timing mark. A delay time is selected based on potential locations of the data fragment relative to the known time point. Preferably the delay time is fetched from a look-up table, however, the delay time may be obtained through alternative means such as a mathematical function. Once the delay time is determined, a read operation is attempted at a second time point occurring at the selected delay after the first time point. When the data is recovered it is reallocated to a different sector of the storage media.
The foregoing and other features, utilities and advantages of the invention will be apparent from the following more particular description of a preferred embodiment of the invention as illustrated in the accompanying drawings, or may be learned by practice of the invention. The advantages and purpose of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.